步骤 9:打包一个安装程序¶
接下来假设我们要将我们的项目分发给其他人,以便他们可以使用它。我们希望在各种平台上提供二进制和源代码分发。这与我们之前在 Installing and Testing
中执行的安装有些不同,在该安装中,我们安装的是我们从源代码构建的二进制文件。在此示例中,我们将构建安装程序包,以支持二进制安装和软件包管理功能。为了实现此目的,我们将使用 CPack 来创建特定于平台的安装程序。具体来说,我们需要在顶级 CMakeLists.txt
文件的底部添加几行。
include(InstallRequiredSystemLibraries)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
set(CPACK_PACKAGE_VERSION_MAJOR "${Tutorial_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${Tutorial_VERSION_MINOR}")
set(CPACK_GENERATOR "TGZ")
set(CPACK_SOURCE_GENERATOR "TGZ")
include(CPack)
这就是全部。我们首先包含 InstallRequiredSystemLibraries
。此模块包含项目针对当前平台所需的任何运行时库。接下来,我们将设置一些 CPack 变量,在其中存储了此项目的许可证和版本信息。在本教程中较早设置了版本信息,而 License.txt
已包含在此步骤的顶层源代码目录中。变量 CPACK_GENERATOR
和 CPACK_SOURCE_GENERATOR
分别选择用于二进制和源代码安装的生成器。
最后,我们包含 CPack module
,它将使用这些变量和当前系统的一些其他属性来设置一个安装程序。
下一步是以通常的方式构建项目,然后运行可执行文件 cpack
。若要构建二进制分发,请从二进制目录中运行
cpack
要指定二进制生成器,请使用 -G
选项。对于多配置构建,请使用 -C
指定配置。例如
cpack -G ZIP -C Debug
有关可用生成器的列表,请参阅 cpack-generators(7)
或调用 cpack --help
。一个 archive generator
(如 ZIP)会创建一个所有已安装文件的压缩存档。
若要创建完整源树的存档,您需要键入
cpack --config CPackSourceConfig.cmake
或者,运行 make package
或右键单击 Package
目标,然后从 IDE 中 Build Project
。
运行二进制目录中找到的安装程序。然后运行已安装的可执行文件并验证是否可以正常工作。